package com.p1;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class ControllerRestful {

    //Restful最大特点就是安全,不能查看到参数
   //Restful风格://Restful就是一个资源定位及资源操作的风格。不是标准也不是协议，只是一种风格。基于这个风格设计的软件可以更简洁，更有层次，更易于实现缓存等机制。
       //原来的:   http://localhost:8080/add/a=1&b=2
       //restful:  http://localhost:8080/add/a/b


   // @RequestMapping这个注解形式能接收所有的类型的请求方式
    @RequestMapping(value = "/add/{a}/{b}",method = {RequestMethod.GET})//给变量参数加上@PathVariable注解之后,就能让方法参数的值对应绑定到一个URI模板变量上。
    public String test1(@PathVariable int a,@PathVariable int b, Model model){
       int res=a+b;
       model.addAttribute("msg","结果为"+res);
        return "test";
    }

    //使用RESTful操作资源 ：可以通过不同的请求方式来实现不同的效果！如下：请求地址一样，但是功能可以不同！
      /*   http://127.0.0.1/item 新增,POST
           http://127.0.0.1/item 更新,PUT
             比如使用了restful风格这两个路径,为什么路径一模一样,一个执行的是post方法,另一个执行了put方法
               这个时候就是应用到了一些注解:(这几个注解和@RequestMapping没什么区别,就是前缀不一样,每个前缀就代表了只能执行哪一种类型的方法)
                @GetMapping
                @PostMapping
                @PutMapping
                @DeleteMapping
                @PatchMapping
               联合方式:@RequestMapping(value = "/add/{a}/{b}",method = {RequestMethod.GET})
                   @GetMapping运用较多

              */

}
